/**
 * 
 */
package com.jr.javachat.server;

import java.io.*;
import java.net.*;
import java.util.Scanner;

/**
 * Server
 * 
 * 编写时间：2011-5-8下午10:09:41
 * @author <a href="http://xiulin.tk/">彭修林</a>
 * 
 */
public class Server {

	private static final int port = 23;
	private Scanner scan;



	/**
	 * 构造方法，用于初始化一个Scanner对象，接收用户输入
	 */
	public Server() {
		scan =new Scanner(System.in);
	}


	/**
	 * @param args 命令行参数，这里并没有进行处理，以后可以加上
	 */
	public static void main(String[] args) {
		Server server = new Server();
		ServerSocket ss = server.serverInit(port);
		if(ss!=null){
			ServiceDispatcher dispatcher = new ServiceDispatcher(ss,server);//TODO 这里的ss变量不应该为static的，这里要直接传给servicedispacher。
			System.out.println("服务器已启动，等待连接");//执行到这里，还没有人连接
			if(dispatcher!=null){
				Thread t = new Thread(dispatcher);
				t.start();//开启一个分派器进程，用于专门的分派工作
			}
//			while(true){
//				try {
//					Thread.sleep(1000);
//				} catch (InterruptedException e) {
//					// TODO Auto-generated catch block
//					e.printStackTrace();
//				}
//			}
		}
	}
	

	public ServerSocket serverInit(int port){
		try {
			return new ServerSocket(port);

		} catch (IOException e) {
			e.printStackTrace();
			System.err.println("连接错误，端口是否被占用着呢？");
		}
		return null;
	}
	/**
	 * @return the userInput
	 */
	public synchronized String getUserInput() {
		notifyAll();
		String userInput = "";
		userInput = scan.next();
		System.out.println(userInput);
		return userInput;
	}

}
